/*
 * @Author: TT-hzy 
 * @Date: 2024-07-01 10:24:23
 * @LastEditors: TT-hzy 
 * @LastEditTime: 2024-07-01 10:42:07
 * @Description: 
 */


import {
  Application,
  IBoot
} from 'egg';

export default class FooBoot implements IBoot {
  private readonly app: Application;

  constructor(app: Application) {
    this.app = app;
    this.app.logger.info('app boot');
  }

  configWillLoad() {
    // 预备调用 configDidLoad，
    // Config 和 plugin 文件已被引用，
    // 这是修改配置的最后机会。
    console.log('configWillLoad');
  }

  configDidLoad() {
    // Config 和 plugin 文件已加载。
    console.log('configDidLoad');
  }

  async didLoad() {
    // 所有文件已加载，此时可以启动插件。
    console.log('didLoad');
  }

  async willReady() {
    // 所有插件已启动，这里可以执行一些在应用准备好之前的操作。
    console.log('willReady');
  }

  async didReady() {
    // Worker 已准备好，可以执行一些不会阻塞应用启动的操作。
    console.log('didReady');
  }

  async serverDidReady() {
    // 服务器已监听。
    console.log('serverDidReady');
  }

  async beforeClose() {
    // 应用关闭前执行的操作。
    console.log('beforeClose');
  }
}